package leetcode.problems;

import org.junit.Test;

import java.util.Arrays;

/**
 * Created by gmwang on 2020/1/29
 * Find N Unique Integers Sum up to Zero
 * 查找N个唯一整数总和为零
 */
public class FindNUniquIntegersSumuptoZero {
    /**
     * Share
     * Given an integer n, return any array containing n unique integers such that they add up to 0.
     *
     *
     *
     * Example 1:
     *
     * Input: n = 5
     * Output: [-7,-1,1,3,4]
     * Explanation: These arrays also are accepted [-5,-1,1,2,3] , [-3,-1,2,-2,4].
     * Example 2:
     *
     * Input: n = 3
     * Output: [-1,0,1]
     * Example 3:
     *
     * Input: n = 1
     * Output: [0]
     *
     *
     * Constraints:
     *
     * 1 <= n <= 1000
     **/
    public int[] sumZero(int n) {
        //判断奇偶,偶数转换为 -1,1这种，奇数转换为 -1,0,1这种
        int [] result = new int [n];
        int tmp = n / 2;
        for (int i = 0; i < tmp; i++) {
            result[i] = -tmp + i;
            result[n - i - 1] = tmp - i;
        }
        if((n & 1) == 1){
            result[tmp] = 0;
        }
        return result;
    }
    @Test
    public void test(){
        int n = 5;
        int[] ints = sumZero(n);
        System.out.println(Arrays.toString(ints));
    }
}
